In buffered window systems, application programs do not draw directly into a video memory, but to off-screen window buffers in system memory that are then composed together by the buffered window system to render the final screen, typically a number of times per second. That is, instead of outputting directly to a common screen, application programs each output data first to a separate and independent window buffer, where the data can be manipulated before they are transferred to a frame buffer to be shown on a screen of a display device. The output from these separate window buffers is then processed and combined in the frame buffer to display onto a common screen of the display device.
FIG. 1 illustrates a typical buffered window system. In a buffered window system, applications draw content in the window buffers; and the window system combines the images buffered in window buffers in a frame buffer to display the corresponding windows on the screen. For example, application software 101 draws content in window buffer 115, which is typically allocated from system memory 111. When the size of the window displayed on the display is changed, a new window buffer is typically allocated that replaces the old one in order to accommodate the window of the new size. Frame buffer 121 contains data for the screen image of the windows that are displayed on the screen of display device 105. When the window for application software 101 is moved on the screen, the content in the window is not changed; and the application software does not have to update window buffer 115. The window system copies the data in the window buffer to the correct position in frame buffer 121 to display the window in the new location on the screen. When the window is partially covered by other windows, a portion of data in window buffer 115 is copied onto the frame buffer to display the corresponding portion of the window that is visible. Frame buffer 121 is typically under control of graphics hardware 103 (e.g., graphics/video card) which controls the display of the windows on the screen of display device 105 using the data in the frame buffer. Thus, in a buffered window system, operations for creating the content in windows are separated from operations for composing a screen image from images of windows for different applications. Applications create (or update) images of the windows (content for the windows) in window buffers; and the window system composes a screen image from images of the windows in the window buffers. The window buffers are independent from the frame buffer. Content in the corresponding window buffers can be copied by the window system to the corresponding locations in the frame buffer to display the windows in these locations on the common screen of the display device. The window back buffers are independent from the frame buffer.
The window may be displayed concurrently on multiple displays attached to a computer system. For example, the window displayed on a high resolution notebook display may be mirrored onto a low resolution projector display. In another example, one portion of the window may be displayed on a high resolution display, and other portion of the window may be displayed on a low resolution display. An application program typically renders into a single window back buffer to display the content of the same window on multiple displays. If these displays have different resolutions, the single window back buffer is typically rendered at the resolution of the display having the lowest resolution. In such case, the displays having higher resolution are forced to “scale down” and down shift to the resolution of the lowest resolution display. That is, the displays operate in a “blurry” mode instead of using their native resolution. As a result, the image on the displays having higher resolution appears blurred and fuzzy. Alternatively, the low resolution display may be “up-sampled” to the high resolution display. Typically, the image on the “up-sampled” display appears even more fuzzy than on the “scaled down” display.
The prior art includes the following references: U.S. Pat. No. 6,232,932; U.S. Pat. No. 7,307,641; U.S. Pat. No. 7,302,648; and U.S. Patent Application Publication No. 2006/0127059.